#install.packages("readxl")

library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(ggmosaic)
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(patchwork)
Ruta_archivo <- "est_pol_2024.xls"

datos <- read_excel(Ruta_archivo)
cat("La presente página tiene como objetivo mostrar una representación visual de varios datos que se nos brindaron con relación a las estadísticas policiales en Costa Rica. Estas  se exhiben en varios métodos con tal de hacerlas ver interesantes y comprensibles.")
## La presente página tiene como objetivo mostrar una representación visual de varios datos que se nos brindaron con relación a las estadísticas policiales en Costa Rica. Estas  se exhiben en varios métodos con tal de hacerlas ver interesantes y comprensibles.
cat("1. La siguiente gráfica presenta en forma de barras, una comparación en cuanto a los tipos de delito que se han reportado. A partir de esto podemos deducir que el hurto es el delito más común, mientras que el homicidio es el menos ocurrido.")
## 1. La siguiente gráfica presenta en forma de barras, una comparación en cuanto a los tipos de delito que se han reportado. A partir de esto podemos deducir que el hurto es el delito más común, mientras que el homicidio es el menos ocurrido.
#1 variable
dfTest <- head(datos, n=)
dfDelitos <- datos %>% ggplot(aes(x=Delito, y=1)) +
  geom_bar(stat = "identity", aes(fill="")) +
  theme(legend.position = "none",
        axis.text.x = element_text(angle = 45, hjust = 1)) +  
  labs(y = "Numero de delitos")
dfDelitos

cat("2. Como se puede apreciar en la siguiente gráfica la cual presenta un mosaico distribuido proporcionalmente de acuerdo a la cantidad de víctimas divididas por género, la gran mayoría de víctimas han sido del género masculino,abarcando más de la mitad de sucesos reportados, mientras que la cantidad de víctimas de genero femenino es notablemente menor, y casos donde se desconoce el género de la víctima los menos comunes.")
## 2. Como se puede apreciar en la siguiente gráfica la cual presenta un mosaico distribuido proporcionalmente de acuerdo a la cantidad de víctimas divididas por género, la gran mayoría de víctimas han sido del género masculino,abarcando más de la mitad de sucesos reportados, mientras que la cantidad de víctimas de genero femenino es notablemente menor, y casos donde se desconoce el género de la víctima los menos comunes.
#1 variable
dfGenero <- datos %>% ggplot() +
  geom_mosaic(aes(x=product(Genero), fill=Genero),
             offset = 0) +
  geom_mosaic_text(aes(x = product(Genero), fill = Genero), offset = 0)+
  theme(legend.position = "top")
dfGenero
## Warning: The `scale_name` argument of `continuous_scale()` is deprecated as of ggplot2
## 3.5.0.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `trans` argument of `continuous_scale()` is deprecated as of ggplot2 3.5.0.
## ℹ Please use the `transform` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

cat("3. En esta gráfica podemos observar los tipos de víctima afectada en forma de strip plots, de manera que se muestran los casos como puntos en la gráfica de acuerdo al tipo. Entre más densa la población en cada espacio, mayor la cantidad de ocurrencias donde esa fue la víctima afectada. En este caso, observamos que la situación donde la víctima es una persona es significativamente mayor que las demás. Además, existe una similar cantidad donde la víctima es un bien material como vivienda o vehículo.")
## 3. En esta gráfica podemos observar los tipos de víctima afectada en forma de strip plots, de manera que se muestran los casos como puntos en la gráfica de acuerdo al tipo. Entre más densa la población en cada espacio, mayor la cantidad de ocurrencias donde esa fue la víctima afectada. En este caso, observamos que la situación donde la víctima es una persona es significativamente mayor que las demás. Además, existe una similar cantidad donde la víctima es un bien material como vivienda o vehículo.
#1 variable
dfVictima <- datos %>%
  ggplot(aes(x = Victima, y = 0)) +  
  geom_jitter(alpha = 0.7) +  
  labs(title = "Distribucion de Victimas", x = "Victima", y = NULL) +
  theme_minimal() +
  theme(axis.title.y = element_blank(),  
        panel.grid.major.y = element_blank(), 
        panel.grid.minor.y = element_blank()) 
dfVictima

cat("4. En esta observamos una comparación tomando en cuenta dos variables, analizando tipo de delito por género de la víctima. Esto en forma de gráfica de barras apilada. De acuerdo a la distribución observamos que una gran cantidad tanto de hombres como mujeres sufren por hurto. No obstante, también se nota que gran parte de personas asaltadas son hombres. Además, podemos resaltar que el aspecto de homicidio, la gran mayoría de estas víctimas han sido varones.")
## 4. En esta observamos una comparación tomando en cuenta dos variables, analizando tipo de delito por género de la víctima. Esto en forma de gráfica de barras apilada. De acuerdo a la distribución observamos que una gran cantidad tanto de hombres como mujeres sufren por hurto. No obstante, también se nota que gran parte de personas asaltadas son hombres. Además, podemos resaltar que el aspecto de homicidio, la gran mayoría de estas víctimas han sido varones.
# 2 variables
dfDelGen <-  ggplot(datos, aes(x = Delito, fill = Genero)) +
  geom_bar(position = "stack", color = "black") +
  labs(title = "Distribucion de Delito por Genero", x = "Delito", y = "Cantidad") +
  theme_minimal() +
  theme(legend.position = "top",
        axis.text.x = element_text(angle = 45, hjust = 1))

print(dfDelGen)

cat("4. Podemos obtener a partir de esta grafica, una idea de la cantidad de cada tipo de delito de acuerdo a la hora del día. Según observamos, los hurtos son más comunes durante el pleno día, el cual es el más común, pero los otros delitos son más ocurrentes durante la noche. Por esto aun se puede deducir que salir durante la noche es menos seguro, pero aun así hay crímenes ocurriendo a toda hora por lo que se debe ser cuidadoso siempre.")
## 4. Podemos obtener a partir de esta grafica, una idea de la cantidad de cada tipo de delito de acuerdo a la hora del día. Según observamos, los hurtos son más comunes durante el pleno día, el cual es el más común, pero los otros delitos son más ocurrentes durante la noche. Por esto aun se puede deducir que salir durante la noche es menos seguro, pero aun así hay crímenes ocurriendo a toda hora por lo que se debe ser cuidadoso siempre.
# 2 variables
dfDelHor <- datos %>% 
  ggplot(aes(x = Hora, group = Delito, color = Delito)) +
  geom_line(stat = "count") +
  labs(title = "Comparacion de Delito por Hora", x = "Hora del dia", y = "Cantidad") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), legend.position = "bottom")

print(dfDelHor)

cat("5. Variables multiples" )
## 5. Variables multiples
cat("6. En la siguiente faceta de graficas se presenta una distribución de cantidad de delitos por provincia a la que pertenece la víctima, separados de acuerdo a la edad de esta víctima. De acuerdo a esta información podemos observar que el tipo de víctima más recurrente se puede identificar como adultos de San José.")
## 6. En la siguiente faceta de graficas se presenta una distribución de cantidad de delitos por provincia a la que pertenece la víctima, separados de acuerdo a la edad de esta víctima. De acuerdo a esta información podemos observar que el tipo de víctima más recurrente se puede identificar como adultos de San José.
# Facetas
dfProvEdad <- datos %>% 
  ggplot(aes(x = Provincia, fill = Provincia)) +
  geom_bar() +
  facet_wrap(~Edad) +  
  labs(title = "Comparacion de victima por edad", x = "Provincia", y = "Cantidad") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) 

print(dfProvEdad)

cat("7. Imagen compuesta" )
## 7. Imagen compuesta
dfGrafOne <- datos %>% mutate(HoraCuan =  ifelse(Hora == "21:00:00 - 23:59:59", 0.7,
                                                 ifelse(Hora == "18:00:00 - 20:59:59", 0.6,
                                                        ifelse(Hora == "00:00:00 - 02:59:59", 0.0,
                                                               ifelse(Hora == "03:00:00 - 05:59:59", 0.1,
                                                                      ifelse(Hora == "06:00:00 - 08:59:59",0.2,
                                                                             ifelse(Hora == "09:00:00 - 11:59:59",0.3,
                                                                                    ifelse(Hora == "12:00:00 - 14:59:59",0.4,0.5)
                                                                                    )
                                                                             )
                                                                      )
                                                               )
                                                        )
                                                 )
                                   )
GrafOne <- dfGrafOne %>% ggplot(aes(x=HoraCuan)) +
  geom_histogram(aes(y = after_stat(density)),binwidth = 0.1, color = "black", fill = "white") + 
  geom_density(alpha = 0.3, aes(fill=Victima)) +
  geom_vline(aes(xintercept = mean(HoraCuan)), color = "blue", linetype = "dashed", linewidth = 1) +
  theme(axis.text.y = element_text(size = 6,
                                   color = "red",
                                   face = "bold"),
        axis.text.x = element_text(size = 6, 
                                   color = "blue",
                                   face = "italic", 
                                   angle = 320,
                                   vjust = 0.9,
                                   hjust = -0.009),
        title = element_text(size = 14, 
                             color = "Black",
                             face = "italic"),
        plot.title = element_text(vjust = -4.5),
        axis.title = element_text(size = 12, 
                                  color = "Black",
                                  face = "bold"),
        panel.background = element_rect(fill = "#707770"),
        plot.subtitle = element_text(color = "gray",
                                     hjust = 0.2 ),
        legend.position = "none"
        )


grafThree <- 
  datos %>% ggplot(aes(x=Delito, fill = Genero)) +
  geom_bar()+
  theme(axis.text.y = element_text(size = 6,
                                   color = "red",
                                   face = "bold"),
        axis.text.x = element_text(size = 6, 
                                   color = "blue",
                                   face = "italic", 
                                   angle = 320,
                                   vjust = 0.9,
                                   hjust = -0.009),
        title = element_text(size = 14, 
                             color = "Black",
                             face = "italic"),
        plot.title = element_text(vjust = -4.5),
        axis.title = element_text(size = 12, 
                                  color = "Black",
                                  face = "bold"),
        panel.background = element_rect(fill = "#707770"),
        plot.subtitle = element_text(color = "gray",
                                     hjust = 0.2 ),
        legend.position = "none"
        )
  

grafTwo <- 
  datos %>% ggplot(aes(x=Provincia, fill = Provincia)) +
  geom_bar(color = "black") +
  theme(axis.text.y = element_text(size = 6,
                                   color = "red",
                                   face = "bold"),
        axis.text.x = element_text(size = 6, 
                                   color = "blue",
                                   face = "italic", 
                                   angle = 320,
                                   vjust = 0.9,
                                   hjust = -0.009),
        title = element_text(size = 14, 
                             color = "Black",
                             face = "italic"),
        plot.title = element_text(vjust = -4.5),
        axis.title = element_text(size = 12, 
                                  color = "Black",
                                  face = "bold"),
        panel.background = element_rect(fill = "#707770"),
        plot.subtitle = element_text(color = "gray",
                                     hjust = 0.2 ),
        legend.position = "none"
        )

subplot(grafThree, grafTwo, GrafOne ,shareY = FALSE, nrows = 3, margin = 0.06 ) %>% layout(title ="Combined grafics")